package modelo.bo.cmd.contato;

import java.io.IOException;
import java.sql.*;
import java.util.*;
import javax.servlet.http.*;
import modelo.bo.cmd.Acao;
import modelo.dao.impl.*;
import modelo.dao.util.ConexaoMySQL;
import modelo.dto.*;

public class PesquisaSimplesContato extends Acao {
	private Contato contato;

	@Override
	public void init(HttpServletRequest request) {
		super.pagina = "/pages/contato/pesquisa-contato.jsp";

		this.contato = new Contato();
		this.contato.setNome(request.getParameter("nome"));
	}

	@Override
	public boolean executar(HttpServletRequest request,
			HttpServletResponse response) throws IOException {
		List<Contato> listContatos = new ArrayList<Contato>();
		List<Contato> contatos = null;
		List<Telefone> tels = null;

		super.msg = String.format("Nenhum contato encontrado!");

		try {
			Connection conn = ConexaoMySQL.getConnection();

			ContatoImpl ci = new ContatoImpl(conn);

			contatos = ci.buscarByNome(this.contato);

			if (contatos.size() >= 1) {

				TelefoneImpl ti = new TelefoneImpl(conn);

				for (Contato contato : contatos) {
					tels = ti.buscarTelefoneAndOperadora(contato);

					contato.setTelefones(tels);

					listContatos.add(contato);
				}
				
				request.setAttribute("contatos", listContatos);
			} 
			else {
				request.setAttribute("msg", super.msg);
			}
			
		} 
		catch (SQLException e) {
			e.printStackTrace();
			super.msg = "Erro ao tentar pesquisar contato - ";
			request.setAttribute("msg", super.msg + e.getMessage());
		}

		return super.efetuou;
	}

	@Override
	public String retornaPagina() {
		return super.pagina;
	}

}
